//动画下标
var index = 1;
// 定时器（隐藏播放器）
var timer1 = null;
// 是否为第一次进入
var isFirst = true;
// 音乐列表（包含歌词，播放链接等信息）
var musicLists = null;

var baseUrl = 'http://www.charon.fun';
$(function() {
	init();
});

/**
 * 初始化
 * 
 * @returns
 */
function init() {
	document.onkeyup = function(e) {// 按键信息对象以函数参数的形式传递进来了，就是那个e
		var code = e.charCode || e.keyCode; // 取出按键信息中的按键代码(大部分浏览器通过keyCode属性获取按键代码，但少部分浏览器使用的却是charCode)
		if (code == 13) {
			$("#searchBtn").click();
		}
	}
	/*webSocket();*/
	$("body").eq(0).click();
	loadSongLists();
	// 背景动画
	var iframe = document.getElementById("back-main");
	iframe.onload = function() {
	};
	// 初始化歌单
	/*MusicUtil.loadMusicLists("112815794");*/
	// 初始化背景切换
	window.setInterval(function() {
		changeBackground();
	}, 80000);
	// 搜索框焦点
	$("#searchContent").focus(function() {
		if (timer1 != null) {
			window.clearInterval(timer1);
		}
		if ($("#form1").is(":hidden")) {
			$("#form1").show(1000);
		}
	});
	console.log("生日快乐");
}

/*function webSocket() {
	// 初始化一个 WebSocket 对象
	//var url="ws://" + baseUrl + ":80/charon";
	var url="ws://127.0.0.1:8081/charon/charon";
	var ws = new WebSocket(url);
	// 建立 web socket 连接成功触发事件
	ws.onopen = function() {
		// 使用 send() 方法发送数据
		ws.send("发送数据");
		console.log("数据发送中...");
		iziToast.show({
		    title: 'Hey',
		    message: '数据发送成功',
		    color: 'blue', //blue 
		});
	};

	// 接收服务端数据时触发事件
	ws.onmessage = function(evt) {
		var received_msg = evt.data;
		console.log("数据已接收...");
	};
	// 断开 web socket 连接成功触发事件
	ws.onclose = function() {
		console.log("连接已关闭...");
	};
}*/

// 背景切换
function changeBackground() {
	if (index < 12) {
		index++;
		$("#back-main").attr('src', "/charon/mercury/c" + index + "/demo.html");
	} else {
		index = 1;
		$("#back-main").attr('src', "/charon/mercury/c" + index + "/demo.html");
	}
}

/**
 * 显示播放控件
 * 
 * @returns
 */
function showContro() {
	$("#form1").show(1500);// 将图片的display属性设置为none
	$("#lrc_container").hide(1500);
	$("#showBtn").hide(1500);
	$("#searchList").hide(1500);
	$("#songLists").hide(1000);
}

/**
 * 显示推荐歌单
 * 
 * @returns
 */
function showSongLists() {
	$("#form1").hide(1000);// 将图片的display属性设置为none
	$("#lrc_container").hide(1000);
	$("#showBtn").show(1000);
	$("#searchList").hide(1000);
	$("#songLists").show(1000);
	$("#searchList").off('scroll', searchScroll);
	$("#songLists").scroll(listsScroll);
}

/**
 * 自动隐藏播放控件
 * 
 * @returns
 */
function autoHidden() {
	if (isFirst) {
		isFirst = false;
		return;
	}
	if (timer1 != null) {
		window.clearInterval(timer1);
	}
	// 三秒自动隐藏播放控件
	timer1 = window.setTimeout(function() {
		if ($("#searchList").is(":hidden") && $("#songLists").is(":hidden")) {
			// 定时器
			$("#form1").hide(1500);// 将图片的display属性设置为none
			$("#lrc_container").show(1500);
			$("#showBtn").show();
		}
	}, 3000);// 设置三千毫秒即3秒
}

/**
 * 显示或者隐藏播放控件的歌曲列表
 */
var isShowList = false;
function showList() {
	if (isShowList) {
		$(".m-music-list-wrap").hide(1000)
		isShowList = false;
	} else {
		$(".m-music-list-wrap").show(500);
		isShowList = true;
	}
}

function listsScroll() {
	// 下面这句主要是获取网页的总高度，主要是考虑兼容性所以把Ie支持的documentElement也写了，这个方法至少支持IE8
	var htmlHeight = document.getElementById("songLists").scrollHeight;
	// clientHeight是网页在浏览器中的可视高度，
	var clientHeight = document.getElementById("songLists").clientHeight;
	// scrollTop是浏览器滚动条的top位置，
	var scrollTop = document.getElementById("songLists").scrollTop;
	// 通过判断滚动条的top位置与可视网页之和与整个网页的高度是否相等来决定是否加载内容；
	if (htmlHeight - (scrollTop + clientHeight) < 900) {
		loadSongLists();
	}
}
function searchScroll() {
	// 下面这句主要是获取网页的总高度，主要是考虑兼容性所以把Ie支持的documentElement也写了，这个方法至少支持IE8
	var htmlHeight = document.getElementById("searchList").scrollHeight;
	// clientHeight是网页在浏览器中的可视高度，
	var clientHeight = document.getElementById("searchList").clientHeight;
	// scrollTop是浏览器滚动条的top位置，
	var scrollTop = document.getElementById("searchList").scrollTop;
	// 通过判断滚动条的top位置与可视网页之和与整个网页的高度是否相等来决定是否加载内容；
	if (htmlHeight - (scrollTop + clientHeight) < 900) {
		search();
	}
}

/**
 * 歌曲搜索功能
 * 
 * @param val
 * @returns
 */
var oldKeyWords = null;
var searchOffSet = 0;
var isSearchLoading = false;
function search() {
	if (isSearchLoading) {
		return;
	} else {
		isSearchLoading = true;
	}
	if (!$("#songLists").is(":hidden")) {
		isSearchLoading = false;
		return;
	}
	var keywords = $("#searchContent").val();
	var val = null;
	if (keywords == null || keywords == undefined || keywords == "") {
		$("#searchContent").empty();
		return;
	}
	if (keywords == oldKeyWords) {
		searchOffSet += 1;
		val = MusicUtil.loadSearch(keywords, searchOffSet);
	} else {
		searchOffSet = 0;
		oldKeyWords = keywords;
		val = MusicUtil.loadSearch(keywords, searchOffSet);
		$("#searchContent").empty();
	}
	if ($("#searchList").is(":hidden")) {
		$("#form1").hide(500);
		$("#searchList").show(1500);
		$("#showBtn").show(500);
		$("#searchList").scroll(searchScroll);
		$("#songLists").off('scroll', listsScroll);
	}
	MusicUtil.loadSearchList(val);
	isSearchLoading = false;
}

/**
 * 歌单加载
 */
//是否正在加载
var isListsLoading = false;
//是否为第一次进入页面加载
var isFristLoadSongLists = true;
var highListUpdateTime=0;
var highLimit=60;
function loadSongLists() {
	var val = null;
	if (!isFristLoadSongLists) {
		if (isListsLoading || $("#songLists").is(":hidden"))return;
			isListsLoading = true;
		val = MusicUtil.getHighQuality(highLimit,highListUpdateTime);
	} else {
		val = MusicUtil.loadMusicLists("112815794");
		if(val==undefined||val==null)loadSongLists();
	}
	isFristLoadSongLists = false;
}

function checkSong(songID) {
	$.ajax({
		url : "checkSong",
		type : "post",
		dataType : "json",
		async : false,
		data : {
			songID : songID,
		},
		success : function(data) {
		}
	});
}

function timeCalc(mss) {
	var minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60));
	var seconds = (mss % (1000 * 60)) / 1000;
	if (String(seconds).indexOf(".") > -1) {
		seconds = String(seconds).substring(0, String(seconds).indexOf("."));
	}
	if (String(minutes).length == 1) {
		minutes = (0 + String(minutes));
	}
	if (String(seconds).length == 1) {
		seconds = (0 + String(seconds));
	}
	return result = minutes + ":" + seconds;
}

/**
 * 歌单赋值到页面
 * 
 * @param obj
 * @returns
 */
function loadLists(obj) {
	if (!isFristLoadSongLists) {
		var val = obj.playlists;
		for (var a = 0; a < val.length; a++) {
			var description = ((val[a].description == null || val[a].description == "null") ? ""
					: val[a].description);
			var html = "<div id='" + val[a].id
					+ "' onclick='MusicUtil.loadSongList(" + val[a].id
					+ ")'><img class='song-list-img' src='"
					+ val[a].coverImgUrl
					+ "' style='height: 200px; width: 200px;'> <small "
					+ "class='song-list-intro' title='" + description + "'>"
					+ description + "</small>"
					+ "<strong class='song-list-name' title='" + val[a].name
					+ "'>" + val[a].name + "</strong></div>";
			$("#songLists").append(html);
		}
	} else {
		var val = obj;
		for (var a = 1; a < val.length; a++) {
			var description = ((val[a].description == null || val[a].description == "null") ? ""
					: val[a].description);
			var html = "<div id='" + val[a].wyid
					+ "' onclick='MusicUtil.loadSongList(" + val[a].wyid
					+ ")'><img class='song-list-img' title='"+description+"' src='"
					+ val[a].coverImgUrl
					+ "' style='height: 200px; width: 200px;'> <small "
					+ "class='song-list-intro' title='" + description + "'>"
					+ description + "</small>"
					+ "<strong class='song-list-name' title='" + val[a].name
					+ "'>" + val[a].name + "</strong></div>";
			$("#songLists").append(html);
		}
	}
}

var MusicUtil = {
	getHighQuality : function(limit,updateTime) {// 获取热门歌单
		var val = null;
		$.ajax({
			url : "getHighQuality",
			type : "post",
			dataType : "json",
			data : {
				limit : limit,
				updateTime:updateTime
			},
			success : function(data) {
				val = data.data;
				loadLists(val);
				//热门歌单最后一次更新时间
				highListUpdateTime=val.playlists[(highLimit-1)].updateTime;
				//设置加载完毕
				isListsLoading=false;
			}
		});
		return val;
	},
	getNetFriendLists : function(limit) {// 获取网友精选歌单
		var val = null;
		$.ajax({
			url : "getNetFriendLists",
			type : "post",
			dataType : "json",
			async : false,
			data : {
				limit : limit
			},
			success : function(data) {
				val = data;
				console.log(data);
			}
		});
		return val;
	},
	loadSearchList : function(val) {
		for (var a = 0; a < val.length; a++) {
			var html = "<tr onclick='MusicUtil.loadSong("
					+ val[a].id
					+ ")'> <td style='width:60px;'><img title='"
					+ val[a].name
					+ "' style='cursor:pointer;height:55px;width:55px;border-radius:50%;' src='"
					+ val[a].album.artist.img1v1Url
					+ "'/></td>"
					+ "<td style='width:290px;cursor:pointer; overflow: hidden;text-overflow:ellipsis;"
					+ "white-space: nowrap;' title='" + val[a].name + "'>"
					+ val[a].name + "</td>"
					+ "<td style='width:290px;cursor:pointer;overflow: hidden;"
					+ "text-overflow:ellipsis;white-space: nowrap;' title='"
					+ val[a].album.name + "'>" + val[a].album.name + "</td>";
			var singers = "";
			for (var b = 0; b < val[a].artists.length; b++) {
				singers += (val[a].artists[b].name + ",");
			}
			singers = singers.substring(0, singers.length - 1);
			var time = timeCalc(val[a].duration);
			html += "<td style='width:240px;cursor:pointer;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;' title='"
					+ singers
					+ "'>"
					+ singers
					+ "</td>"
					+ "<td style='width:80px;cursor:pointer;'>"
					+ time
					+ "</td>";
			$("#contentSearch").append(html);
		}
	},
	getLrc : function(songID) {// 获取歌词
		var lrc;
		$.ajax({
			url : "getLrc",
			type : "post",
			dataType : "json",
			async : false,
			data : {
				songID : songID
			},
			success : function(data) {
				lrc = data.data;
			},
		});
		return lrc;
	},
	songCollect : function() {// 收藏
		var songID = $("audio").eq(0).attr("id");
		$.ajax({
			url : "songCollect",
			type : "post",
			dataType : "json",
			async : false,
			data : {
				songID : songID,
				type : "1"
			},
			success : function(data) {
			}
		});
		return false;
	},
	songLike : function() {// 喜欢
		var songID = $("audio").eq(0).attr("id");
		$.ajax({
			url : "songLike",
			type : "post",
			dataType : "json",
			async : false,
			data : {
				songID : songID,
				type : "1"
			},
			success : function(data) {
			}
		});
		return false;
	},
	songSick : function() {// 厌恶
		var songID = $("audio").eq(0).attr("id");
		$.ajax({
			url : "songSick",
			type : "post",
			dataType : "json",
			async : false,
			data : {
				songID : songID,
				type : "1"
			},
			success : function(data) {
			}
		});
		return false;
	},
	loadSongList : function(listID) {// 根据歌单ID加载歌曲
		$.ajax({
			url : "getSongList",
			type : "post",
			dataType : "json",
			data : {
				listID : listID
			},
			success : function(data) {
				SMusic({
					musicList : data.playlist.tracks
				});
			}
		});
	},
	loadMusicLists : function(userId) {// 根据用户Id加载用户歌单
		var val = null;
		$.ajax({
			url : "getSongLists",
			type : "post",
			dataType : "json",
			async : false,
			data : {
				userId : userId
			},
			success : function(data) {
				if(data.data==undefined||data.data==null||data.data.length<=0){
					val==null;
				}else{
					// 歌单集合
					// 注意，这里data中的0是xxx喜欢的音乐，直接从1开始读
					MusicUtil.loadSongList(data.data[6].wyid);
					val = data.data;
					if(isFristLoadSongLists){
						loadLists(val);
					}
				}
			}
		});
		return val;
	},
	loadSearch : function(keywords, offset) {
		var val = null;
		$.ajax({
			url : "searchByType",
			type : "post",
			dataType : "json",
			async : false,
			data : {
				keyWords : keywords,
				limit : "60",
				offset : offset,
				type : "1"
			},
			success : function(data) {
				var result = JSON.parse(data.data);
				val = result.result.songs;
			}
		});
		return val;
	},
	loadSong : function(songID) {
		var val = null;
		$.ajax({
			url : "getSongInfo",
			type : "post",
			dataType : "json",
			async : false,
			data : {
				songID : songID
			},
			success : function(data) {
				var result = data.data
				SMusic({
					musicList : result.songs
				});
			}
		});
		return val;
	}
}
